Caches are typically used by web browsers and other web-based applications to store information previously received from a web server, such as web pages and elements within those web pages that have been sent to the web browser. In general, a cache is a collection of data duplicating original values stored elsewhere or computed earlier, where the original data is expensive to retrieve (owing to longer access time) or to compute, compared to the cost of reading from the cache. Stated differently, a cache is a temporary storage area where frequently accessed data can be stored for rapid access. Once data is stored in the cache, future uses of the data can be made by accessing the cached copy rather than re-requesting and receiving, or re-computing the original data, so that the average access time is shorter. Specifically, web caches can be used to reduce the amount of information required to be transmitted across a network, such as from the web server to the requesting system, as information sent in previous interactions between the web browser and web server can be stored in the cache associated with the web browser and re-used when the same web page or related elements are later requested. Among other advantages, the use of a web cache can reduce the bandwidth and processing requirements of the web server, as well as improve the responsiveness and speed for retrieving and presenting data to a user by the web browser.
In some instances, a particular web page may be associated with one or more image files and/or other cacheable elements (e.g., video, audio, or other related files). Without using a cache to store the previously-received versions of the particular web page and/or the elements associated therewith, each time the particular web page is requested all of the data associated with the page is re-sent from the web server to the requesting entity. In cases of high latency of the network connection, recurring and excessive requests for the particular web page by multiple users, each requesting the entirety of the data associated with the web page (which in turn may cause individual server requests for the web page as well as each element included within the web page), can cause increased load times, loading timeouts, and other errors associated with requests from multiple users and systems attempting to access the particular web page, as well as for other web pages and applications hosted or served by the same web server.
One solution for limiting the number of requests sent to a web server used in connection with a web page and/or file cache has been to extend the default caching time (or cache timeout) associated with particular web pages or for the settings of the web browser itself. By extending the cache timeout of a web browser (i.e., the time between when the web browser stores a web page and/or related element in a cache and when the web browser sends a request to the web server to update the previously-cached web page and/or related element), the number of requests to the web server may be reduced while allowing for quicker loading of the requested web page and its related elements directly from the information stored in the cache. However, this solution provides a potential trade-off between browser performance and the flexibility of updating content associated with the particular web page. If the web page or related element (i.e., a file, embedded image, or another portion of a cached web page) is modified or updated at the web server prior to the expiration of the extended cache time, the web browser (and its associated user) will not be notified of the change until the cached information expires or the cache reaches its default cache timeout. For example, if the web browser has a default cache time of one week, then the web browser will check once a week to see if the cached version of each file is still valid. Changes to any of the files made at the web server during that time will appear only after the default time (i.e., a week) passes, or if the user explicitly requests that the web browser reload or revalidate the cached files. Further, even if the web page or related elements have not been updated, the web browser will still request a new version of the web page and related elements upon expiration of the defined cache value.